package reversi;

/**
 * Klasa <code>ReversiGame</code> reprezentująca grę toczoną aktualnie przez dwóch graczy. Jest ona przechowywana
 * na serwerze. 
 * @author Sebastian Gabor
 * @version 0.1
 * 
 *
 */
public class ReversiGame {
	/**
	 * Konstruktor klasy ReversiGame. Tworzy grę, która ma toczyć się na serwerze. 
	 * @param aname nazwa zakładanej gry
	 * @param aowner_name nazwa właściciela zakładającego grę
	 * @param apass hasło umożliwiające dostęp do gry
	 */

	public ReversiGame(String  aname, String aowner_name,String apass) {
		name=aname;		
		owner_name=aowner_name;
		pass=apass;
	}
	/**
	 * Konstruktor klasy ReversiGame. Tworzy grę, która ma toczyć się na serwerze. 
	 * @param aname nazwa zakładanej gry
	 * @param aowner_name nazwa właściciela zakładającego grę
	 * @param apass hasło umożliwiające dostęp do gry
	 */

	public ReversiGame(String  aname, String apass) {
		name=aname;		
		pass=apass;
	}
	
	
	/**
	 * Funkcja sprawdzająca czy gra jest publiczna, czyli ogólniedostępna.
	 * @return zwraca true jeśli gra jest ogólnie dostępna
	 */
	public boolean isPublic(){
		if (player_name==null && pass==null){
			return true;
		}
		else
			return false;		
	}
	/**
	 * Funkcja sprawdzająca czy można się podłączyć do gry.
	 * @return zwraca true jeśli można podłączyć się do gry
	 */
	
	public boolean isFreeToPlay(){
		if (player_name==null ){
			return true;
		}
		else
			return false;		
	}
	
	public String getName(){
		return name;
	}
	public String getOwnerName(){
		return owner_name;
	}
	public String getPlayerName(){
		return player_name;
	}
	public String getPass(){
		return pass;
	}
	public String getMove(){
		String s=move;		
		move=null;
		data_waiting=false;
		
		return s;
	}
	
	public boolean isDataWaiting(){
		
		return data_waiting;
	}
	
	public boolean setMove(String amove){
		if (move==null){
			move=amove;
			data_waiting=true;
			
			return true;
		}
		else
			return false;
		
			
		
		
	}
	
	public boolean setPlayerName(String s){
		if (player_name==null){
			player_name=s;
		return true;	
		}
		else return false;
	}

	private String pass=null;
	private String name=null;
	private String owner_name;
	private String player_name=null;
	private String move=null;
	private boolean data_waiting=false;
	
	

}
